1. Field of the Invention
The invention described herein relates to computer graphics and network protocols.
2. Related Art
The design of any information processing system must typically face the requirements of speed and reliability. If large amounts of information are to be processed, fast processing and communications are required. For obvious reasons, reliable error free transactions are also a requirement. Obtaining both speed and reliability, however, can be difficult. Highly reliable systems often sacrifice throughput. Conversely, high speed systems may sacrifice reliability in order to achieve the desired levels of performance.
This trade-off can be seen in computer graphics systems. In particular, some computer graphic system architectures are implemented in a client server arrangement. Here, a graphics application and rendering resources operate at a server. A user, meanwhile, is located at a client and controls the graphics application remotely. User interface transactions need to take place in a reliable manner. User interface transactions are defined herein as rendering commands sent by a user to a graphics application, and rendered graphics data for a graphical user interface (GUI) sent from rendering resources at a server to the user's display. A user's commands must be conveyed to the server in an accurate fashion. From a user's perspective, such commands are given through a GUI, and can take the form of keyboard inputs, pointer inputs, such as those produced by a mouse or touchpad, or menu selections. The user also needs to receive accurate feedback from the server regarding the commands, via the GUI. Along with the image that is the subject of the graphics application (i.e., the subject graphics), an image of the GUI is also rendered at the server. Modified GUI images that show, for example, a depressed button or a highlighted menu selection must be reliably conveyed from the server back to the client.
The subject graphics, however, typically represents the bulk of the data being rendered. Throughput in rendering and transmitting rendered subject graphics to the client is therefore a priority, especially in the context of streaming graphics. A high data rate is therefore needed in transmitting the rendered subject graphics from the server to the client.
Hence there is a need for a system and method that provides both fast and reliable data transport in the context of a distributed computer graphics system, such that user interaction can take place reliably, while rendered graphics can be transported quickly.